1. Field of the Invention
The present invention relates to a system for performing operations on signals.
2. Description of the Prior Art
The processing of two-dimensional (2-D) signals, as for computer graphics or other video applications, often requires storing a large quantity of information (data) in an array of memory cells. For example, most high definition television (HDTV) receiver designs require storing at least one frame of video information. In most present-day HDTV designs, each frame comprises about 1,000,000 picture elements (pixels). Considering that each pixel typically comprises three color elements that each require eight bits of brightness information, the total number of binary bits that are required to define each frame is about 24 million. Other types of video displays, for example high definition graphics displays, also require a large number of bits to define each frame. Therefore, the memory requirements are a significant part of the cost of each such video receiver or computer terminal.
In many video designs, a linear transform operation is performed on the information stored in the video memory array. For example, to provide for a transmission signal having as small a bandwidth as possible, at least one of the proposed HDTV techniques performs a discrete cosine transform (DCT) on each stored frame. A typical system for performing the transform operation is shown in FIG. 4, wherein the stored information is divided into many blocks, each comprising H rows and W columns (and referred to as an "H.times.W block"). Next, each block (40) is processed in column format (e.g., col. 1, 2 . . . W) by a transform operation (41). In order to transpose the block of information for processing in row format, two memory arrays are typically required. Information is stored in a first memory (43), while simultaneously information is read out of a second memory (44) by rows (e.g., row 1, 2 . . . H). When the next block of video information that has been processed by columns arrives, it will be written into the second memory (44). Simultaneously, the first memory (43) will be read out by rows. In this manner, the information may be processed by the linear transform operation by both columns and rows, as required. This technique is often called "ping-pong" in the art.
In the special case wherein the memory array is "square" (i.e., having an equal number of rows and columns), it is known to transpose between column and row formats by simply transposing the row and column portions of the memory address bits. In that technique, first the data is written into the memory array. Then, the address bits are transposed, and the array is read out, which provides the data in the other format (e.g., row format). However, that technique does not work for "non-square" arrays (i.e., having an unequal number of rows and columns).
It can thus be seen that in a typical video graphics or HDTV application, large memory arrays are often required for transposition. It would be very advantageous to reduce the amount of memory required in such applications. Still other signal processing techniques require that data be structured in two-dimensional data arrays, and that the data be operated on by rows and by columns. For example, 2-D filtering and 2-D transform operations require that information be supplied in both column and row format. Applications include medical tomography, seismology, and radar analysis, among others.